/**
 * Captain
 * © 2018 Captain copyright，All rights reserved.
 * http://www.sccaptain.com.cn
 * 
 * JAVA : 8
 * 文  件  名: CommInfoService.java
 * 创  建  人: QinYoubin (qin.youbin@sccaptain.com.cn)
 * 创建时间: 2018年4月26日 上午9:49:45
 * 版         本: 1.0.0
 * 备         注:
 * 修订历史:
 */
package com.material.c2c.commodity.service;

import java.util.List;
import java.util.Map;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.cpt.framework.core.OperationResult;
import com.material.c2c.commodity.entity.SPJS;
import com.material.c2c.commodity.entity.SPXX;
import com.material.c2c.commodity.model.CommDetailDTO;
import com.material.c2c.img.entity.TPXX;

/**
 * 商品信息
 * @since 1.0
 * @version 1.0
 * @author QinYoubin (qin.youbin@sccaptain.com.cn)
 */
public interface CommInfoService {
  /**
   * 更新商品信息
   * @param spxx
   * @return
   * @since 1.0
   * @version 1.0
   * @author QinYoubin (qin.youbin@sccaptain.com.cn)
   */
  OperationResult update(SPXX spxx,SPJS spjs);

  /**
   * 删除商品信息
   * @param id
   * @return
   * @since 1.0
   * @version 1.0
   * @author QinYoubin (qin.youbin@sccaptain.com.cn)
   */
  OperationResult delete(String id);

  /**
   * 查询单条数据
   * @param spid
   * @return
   * @since 1.0
   * @version 1.0
   * @author QinYoubin (qin.youbin@sccaptain.com.cn)
   */
  CommDetailDTO getOne(String spid);

  /**
   * 分页查询数据
   * @param key
   * @param fl
   * @param pageable
   * @return
   * @since 1.0
   * @version 1.0
   * @author QinYoubin (qin.youbin@sccaptain.com.cn)
   */
  Page<SPXX> list(String key, String fl, Pageable pageable);

  /**
   * 新增信息
   * @param spxx
   * @param spjs
   * @param tpList
   * @return
   * @since 1.0
   * @version 1.0
   * @author QinYoubin (qin.youbin@sccaptain.com.cn)
   */
  OperationResult add(SPXX spxx, SPJS spjs, List<TPXX> tpList);
  /**
   * 用来查询首页的数据
   * @param flList
   * @return
   */
  List<Map<String, Object>> getIndex(List<String> flList);
  /**
   * 查询某分类下面的前30条信息
   * @param fl
   * @return
   */
  List<CommDetailDTO> getFlList(String fl);
  /**
   * 查询特价商品
   * @return
   */
  List<CommDetailDTO> getTjList();
  /**
   * 积分商品
   * @return
   */
  List<CommDetailDTO> getJfList();
  /**
   * 分类页查询
   * @param fl
   * @param page
   * @return
   * @since 1.0
   * @version 1.0
   */
  Page<CommDetailDTO> classifyPage(String fl, Pageable page);
  /**
   * 前台查询结果
   * @param key
   * @param fl
   * @param pageable
   * @return
   * @since 1.0
   * @version 1.0
   */
  Page<CommDetailDTO> search(String key, String fl, Pageable pageable);

}
